package cst.a214frm.startproject.model;

import cst.a214frm.startproject.bean.WeatherResult;
import cst.a214frm.startproject.iface.WeatherIface;
import cst.a214frm.startproject.listener.WeatherListener;
import cst.a214frm.startproject.service.WeatherService;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;

/**
 * Created by fangrongmin on 2017/5/11.
 */

public class WeatherModel implements WeatherIface {
    private WeatherService service;
    private Retrofit retrofit;
    private static final String BASE_URL = "http://www.weather.com.cn/";

    public WeatherModel() {
        retrofit = new Retrofit.Builder()
                .baseUrl(BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
    }
        @Override
        public void getWeather(String cityNumber, final WeatherListener listener) {
            service= retrofit.create(WeatherService.class);
            Call<WeatherResult> call = service.getResult(cityNumber);
            call.enqueue(new Callback<WeatherResult>() {
                @Override
                public void onResponse(Call<WeatherResult> call, Response<WeatherResult> response) {
                    if(response.isSuccessful()&&response.body()!=null){
                        listener.onResponse(response.body().getWeatherinfo());
                    }
                    else{
                        listener.onFail("解析错误！");
                    }
                }

                @Override
                public void onFailure(Call<WeatherResult> call, Throwable t) {
                    listener.onFail(t.toString());
                }
            });
        }

}